from constants.constants import ChargeMode, ChargeType, IsOutage, WhetherRefund, IsFreeCharge,DeviceType
from typing import List,Any,Dict

class GetDeviceSettingOnlineCardInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceSettingOnlineCardInfoResp:
    def __init__(self, code: int, message: str, data: Any, timestamp: int):
        self.code = code
        self.message = message
        self.data = data
        self.timestamp = timestamp

class GetDeviceSettingOnlineCardInfoData:
    def __init__(self, id: int, device_num: str, password_a: str, password_b: str, sector: int, is_multi_pay: int, charge_mode: int, is_enable: int, is_offline_pay: int, free: int, created_at: str, updated_at: str, deleted_at: str):
        self.id = id
        self.device_num = device_num
        self.password_a = password_a
        self.password_b = password_b
        self.sector = sector
        self.is_multi_pay = is_multi_pay
        self.charge_mode = charge_mode
        self.is_enable = is_enable
        self.is_offline_pay = is_offline_pay
        self.free = free
        self.created_at = created_at
        self.updated_at = updated_at
        self.deleted_at = deleted_at

class DeviceSaveModeReq:
    def __init__(self, device_num: str, charge_mode: ChargeMode, charge_type: ChargeType, charge_value: List[str], max_power: int, start_fee: int, max_pay_fee: int, payment_value: List[int], time_value: List[int], work_charge: int, work_charge_fourdigit: int, power_value: List[int], price_value: List[int], check_time: int, inc_time: int, type: int, count_mode: int, display_delay: str, is_not_disturb: str, not_disturb_start: str, not_disturb_end: str, not_disturb_volume: int, is_outage: IsOutage, auto_off_wait_time: int, auto_off_lower_power: int, floating_charge_time: str, floating_charge_power: int, whether_refund: WhetherRefund, is_free_charge: IsFreeCharge, detect_time: int):
        self.device_num = device_num
        self.charge_mode = charge_mode
        self.charge_type = charge_type
        self.charge_value = charge_value
        self.max_power = max_power
        self.start_fee = start_fee
        self.max_pay_fee = max_pay_fee
        self.payment_value = payment_value
        self.time_value = time_value
        self.work_charge = work_charge
        self.work_charge_fourdigit = work_charge_fourdigit
        self.power_value = power_value
        self.price_value = price_value
        self.check_time = check_time
        self.inc_time = inc_time
        self.type = type
        self.count_mode = count_mode
        self.display_delay = display_delay
        self.is_not_disturb = is_not_disturb
        self.not_disturb_start = not_disturb_start
        self.not_disturb_end = not_disturb_end
        self.not_disturb_volume = not_disturb_volume
        self.is_outage = is_outage
        self.auto_off_wait_time = auto_off_wait_time
        self.auto_off_lower_power = auto_off_lower_power
        self.floating_charge_time = floating_charge_time
        self.floating_charge_power = floating_charge_power
        self.whether_refund = whether_refund
        self.is_free_charge = is_free_charge
        self.detect_time = detect_time

class DeviceSaveModeResp:
    def __init__(self, code: int, message: str, data: Any, timestamp: int):
        self.code = code
        self.message = message
        self.data = data
        self.timestamp = timestamp

class DeviceSaveModeData:
    def __init__(self, result: bool):
        self.result = result

class GetDeviceModeTimeInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceModeTimeInfoResp:
    def __init__(self, code: int, message: str, data: List[Any], timestamp: int):
        self.code = code
        self.message = message
        self.data = data
        self.timestamp = timestamp

class GetDeviceModeTimeInfoData:
    def __init__(self, id: int, device_num: str, charge_type: str, charge_value: str, max_power: int, start_fee: int, max_pay_fee: int, whether_refund: int, created_at: str, updated_at: str):
        self.id = id
        self.device_num = device_num
        self.charge_type = charge_type
        self.charge_value = charge_value
        self.max_power = max_power
        self.start_fee = start_fee
        self.max_pay_fee = max_pay_fee
        self.whether_refund = whether_refund
        self.created_at = created_at
        self.updated_at = updated_at        

class GetDeviceModeTime1InfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceModeTime1InfoResp:
    def __init__(self, code: int, message: str, data: Any, timestamp: int):
        self.code = code
        self.message = message
        self.data = data
        self.timestamp = timestamp

class GetDeviceModeTime1InfoData:
    def __init__(self, id: int, device_num: str, charge_type: str, payment_value: str, time_value: str, max_power: int, start_fee: int, whether_refund: int, reserve1: int, reserve2: int, created_at: str, updated_at: str):
        self.id = id
        self.device_num = device_num
        self.charge_type = charge_type
        self.payment_value = payment_value
        self.time_value = time_value
        self.max_power = max_power
        self.start_fee = start_fee
        self.whether_refund = whether_refund
        self.reserve1 = reserve1
        self.reserve2 = reserve2
        self.created_at = created_at
        self.updated_at = updated_at

class GetDeviceSettingCoinInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class FindMultiDevicesReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class DeviceAddReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceModeWorkInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceModeWork1InfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceModePowerInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceModePower1InfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class DeviceFindListReq:
    def __init__(self, device_num: str,page: int,page_size: int,device_type: DeviceType,iot_phone: str):
        self.device_num = device_num
        self.page = page
        self.page_size = page_size
        self.device_type = device_type
        self.iot_phone = iot_phone
        
class DeviceDelReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class DeviceGetModeReq:
    def __init__(self, device_num: str):
        self.device_num = device_num
        
class GetDeviceSettingUserInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num
        
class GetDeviceSettingNotDisturbInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class DeviceFindOneReq:
    def __init__(self, device_num: str):
        self.device_num = device_num

class GetDeviceSettingOfflineCardInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num       

class GetDeviceSettingSafetyInfoReq:
    def __init__(self, device_num: str):
        self.device_num = device_num          


        